#include "StdAfx.h"
#include "libs\include\RF620Device.h"

using namespace RFDevice;

extern "C"
{
	RFDEVICEPROXYDLL RF620Device* CALLING_CONVENTION CreateRF620Device()
	{
		return new RF620Device();
	}

	RFDEVICEPROXYDLL RF620Device* CALLING_CONVENTION CreateRF620Device_1( LPUDP_DEVINFOBLOCK_PC  lpDevBlock )
	{
		return new RF620Device(lpDevBlock);
	}

	RFDEVICEPROXYDLL void CALLING_CONVENTION DisposeRF620Device(RF620Device* rf)
	{
		rf->~RF620Device();
		rf = NULL;
	}

	RFDEVICEPROXYDLL void CALLING_CONVENTION RF620Device_CloneParameters  (RF620Device* rf, RF620Device *  lpDev ) 
	{
		return rf->CloneParameters(lpDev);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_Connect(RF620Device* rf)
	{
		return rf->Connect();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_Connect_1(RF620Device* rf, LPUDP_DEVINFOBLOCK_PC  lpDevBlock ) 
	{
		return rf->Connect(lpDevBlock);
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF620Device_ConvertResultToPoints  (RF620Device* rf, 
		void IN *  lpResultBuffer,  
		DWORD OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount)  
	{
		return rf->ConvertResultToPoints(lpResultBuffer, lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF620Device_ConvertResultToPoints_1 (RF620Device* rf, 
		void IN *  lpResultBuffer,  
		float OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount  )  
	{
		return rf->ConvertResultToPoints(lpResultBuffer, lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_Disconnect(RF620Device* rf)
	{
		return rf->Disconnect();
	}
	
	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_FlushParams  (RF620Device* rf, BOOL  bDefault = FALSE ) 
	{
		return rf->FlushParams(bDefault);
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetAnalogueOutputNumberOfPoints   (RF620Device* rf) 
	{
		return rf->GetAnalogueOutputNumberOfPoints();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetAnalogueOutputPointHoldupTime    (RF620Device* rf) 
	{
		return rf->GetAnalogueOutputPointHoldupTime ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetAnalogueOutputSyncEdge     (RF620Device* rf) 
	{
		return rf->GetAnalogueOutputSyncEdge  ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetAnalogueOutputSyncEnabled      (RF620Device* rf) 
	{
		return rf->GetAnalogueOutputSyncEnabled   ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetAnalogueOutputTTL_OUT0Level       (RF620Device* rf) 
	{
		return rf->GetAnalogueOutputTTL_OUT0Level    ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetBaseDistance(RF620Device* rf) 
	{
		return rf->GetBaseDistance();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetCapsAnalogueOutputByCurrent (RF620Device* rf) 
	{
		return rf->GetCapsAnalogueOutputByCurrent ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetCapsAnalogueOutputByVoltage  (RF620Device* rf) 
	{
		return rf->GetCapsAnalogueOutputByVoltage  ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetCapsExternalMeasurementSync   (RF620Device* rf) 
	{
		return rf->GetCapsExternalMeasurementSync   ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetCapsExternalResultSync    (RF620Device* rf) 
	{
		return rf->GetCapsExternalResultSync    ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetCapsLaserModulation     (RF620Device* rf) 
	{
		return rf->GetCapsLaserModulation     ();
	}

	RFDEVICEPROXYDLL const LPUDP_DEVINFOBLOCK_PC CALLING_CONVENTION RF620Device_GetDevBlock(RF620Device* rf) 
	{
		return rf->GetDevBlock();
	}

	RFDEVICEPROXYDLL const BYTE* CALLING_CONVENTION RF620Device_GetDeviceIPAddress (RF620Device* rf) 
	{
		return rf->GetDeviceIPAddress ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetExposureTime  (RF620Device* rf) 
	{
		return rf->GetExposureTime  ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetExternalMeasurementSyncEdge(RF620Device* rf) 
	{
		return rf->GetExternalMeasurementSyncEdge();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetExternalMeasurementSyncEnabled(RF620Device* rf) 
	{
		return rf->GetExternalMeasurementSyncEnabled();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetExternalResultSyncEdge (RF620Device* rf) 
	{
		return rf->GetExternalResultSyncEdge ();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetExternalResultSyncEnabled(RF620Device* rf) 
	{
		return rf->GetExternalResultSyncEnabled();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetExternalSignalDivisor(RF620Device* rf) 
	{
		return rf->GetExternalSignalDivisor();
	}

	RFDEVICEPROXYDLL DWORD CALLING_CONVENTION RF620Device_GetFirmwareVersion(RF620Device* rf) 
	{
		return rf->GetFirmwareVersion();
	}

	RFDEVICEPROXYDLL const BYTE * CALLING_CONVENTION RF620Device_GetHostIPAddress (RF620Device* rf) 
	{
		return rf->GetHostIPAddress ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetHostPortNumber(RF620Device* rf) 
	{
		return rf->GetHostPortNumber();
	}

	RFDEVICEPROXYDLL char* CALLING_CONVENTION RF620Device_GetHumanReadableDeviceIPAddress(RF620Device* rf) 
	{
		return rf->GetHumanReadableDeviceIPAddress ();
	}

	RFDEVICEPROXYDLL char* CALLING_CONVENTION RF620Device_GetHumanReadableHostIPAddress(RF620Device* rf) 
	{
		return rf->GetHumanReadableHostIPAddress  ();
	}

	RFDEVICEPROXYDLL char* CALLING_CONVENTION RF620Device_GetHumanReadableNetworkMask(RF620Device* rf) 
	{
		return rf->GetHumanReadableNetworkMask();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetImage(RF620Device* rf, void *  lpBuffer ) 
	{
		return rf->GetImage(lpBuffer);
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetLaserLevel(RF620Device* rf) 
	{
		return rf->GetLaserLevel();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetLeftBoundary (RF620Device* rf) 
	{
		return rf->GetLeftBoundary ();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetMeasurementDelay(RF620Device* rf) 
	{
		return rf->GetMeasurementDelay();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetMeasurementRangeXEMR(RF620Device* rf) 
	{
		return rf->GetMeasurementRangeXEMR();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetMeasurementRangeXSMR(RF620Device* rf) 
	{
		return rf->GetMeasurementRangeXSMR();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetMeasurementRangeZ(RF620Device* rf) 
	{
		return rf->GetMeasurementRangeZ();
	}

	RFDEVICEPROXYDLL const BYTE * CALLING_CONVENTION RF620Device_GetNetworkMask(RF620Device* rf) 
	{
		return rf->GetNetworkMask();
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF620Device_GetNormalizedResult(RF620Device* rf,
		DWORD OUT *  lpPointsBuffer,
		USHORT OUT *  lpCount)
	{
		return rf->GetNormalizedResult(lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF620Device_GetNormalizedResult_1(RF620Device* rf,
		float OUT *  lpPointsBuffer, 
		USHORT OUT *  lpCount)
	{
		return rf->GetNormalizedResult(lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_GetResult(RF620Device* rf, void *  lpBuffer ) 
	{
		return rf->GetResult(lpBuffer);
	}

	RFDEVICEPROXYDLL short CALLING_CONVENTION RF620Device_GetResultInclinationAngle(RF620Device* rf) 
	{
		return rf->GetResultInclinationAngle();
	}

	RFDEVICEPROXYDLL short CALLING_CONVENTION RF620Device_GetRotationAngle(RF620Device* rf) 
	{
		return rf->GetRotationAngle();
	}

	RFDEVICEPROXYDLL DWORD CALLING_CONVENTION RF620Device_GetSerialNumber (RF620Device* rf) 
	{
		return rf->GetSerialNumber ();
	}

	RFDEVICEPROXYDLL WORD CALLING_CONVENTION RF620Device_GetSignalProcessingTime(RF620Device* rf) 
	{
		return rf->GetSignalProcessingTime();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetUDPFrequency(RF620Device* rf) 
	{
		return rf->GetUDPFrequency();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetUpperBoundary (RF620Device* rf) 
	{
		return rf->GetUpperBoundary ();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetWindowHeight(RF620Device* rf) 
	{
		return rf->GetWindowHeight();
	}

	RFDEVICEPROXYDLL BYTE CALLING_CONVENTION RF620Device_GetWindowWidth(RF620Device* rf) 
	{
		return rf->GetWindowWidth();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_PingTest(RF620Device* rf) 
	{
		return rf->PingTest();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_ReadParams(RF620Device* rf) 
	{
		return rf->ReadParams();
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetAnalogueOutputNumberOfPoints(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetAnalogueOutputNumberOfPoints(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetAnalogueOutputPointHoldupTime(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetAnalogueOutputPointHoldupTime(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetAnalogueOutputSyncEdge(RF620Device* rf,  BOOL  bValue  ) 
	{
		return rf->SetAnalogueOutputSyncEdge (bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetAnalogueOutputSyncEnabled(RF620Device* rf, BOOL  bValue ) 
	{
		return rf->SetAnalogueOutputSyncEnabled(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetAnalogueOutputTTL_OUT0Level(RF620Device* rf, BOOL  bValue ) 
	{
		return rf->SetAnalogueOutputTTL_OUT0Level(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetDeviceIPAddress(RF620Device* rf, BYTE  ucValue[4] )
	{
		return rf->SetDeviceIPAddress(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetExposureTime(RF620Device* rf, WORD  wValue ) 
	{
		return rf->SetExposureTime(wValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetExternalMeasurementSyncEdge(RF620Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalMeasurementSyncEdge (bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetExternalMeasurementSyncEnabled(RF620Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalMeasurementSyncEnabled(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetExternalResultSyncEdge(RF620Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalResultSyncEdge (bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetExternalResultSyncEnabled(RF620Device* rf, BOOL  bValue ) 
	{
		return rf->SetExternalResultSyncEnabled(bValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetExternalSignalDivisor(RF620Device* rf, BYTE  ucValue )
	{
		return rf->SetExternalSignalDivisor(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetHostIPAddress(RF620Device* rf, BYTE  ucValue[4] ) 
	{
		return rf->SetHostIPAddress(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetHostPortNumber(RF620Device* rf, WORD  wValue ) 
	{
		return rf->SetHostPortNumber(wValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetLaserLevel(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetLaserLevel (ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetLeftBoundary(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetLeftBoundary(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetMeasurementDelay(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetMeasurementDelay(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetNetworkMask(RF620Device* rf, BYTE  ucValue[4] ) 
	{
		return rf->SetNetworkMask(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetRotationAngle(RF620Device* rf, short  sValue ) 
	{
		return rf->SetRotationAngle(sValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetSignalProcessingTime (RF620Device* rf, WORD  wValue  ) 
	{
		return rf->SetSignalProcessingTime (wValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetUDPFrequency(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetUDPFrequency(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetUpperBoundary (RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetUpperBoundary (ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetWindowHeight(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetWindowHeight(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_SetWindowWidth(RF620Device* rf, BYTE  ucValue ) 
	{
		return rf->SetWindowWidth(ucValue);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_UDPConnect(RF620Device* rf,
		USHORT  usUDPPort,  
		LPCSTR  szLocalIPAddress = NULL)
	{
		return rf->UDPConnect(usUDPPort, szLocalIPAddress);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_UDPDisconnect(RF620Device* rf) 
	{
		return rf->UDPDisconnect();
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF620Device_UDPGetNormalizedResult(RF620Device* rf,
		DWORD OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount)
	{
		return rf->UDPGetNormalizedResult (lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL unsigned short CALLING_CONVENTION RF620Device_UDPGetNormalizedResult_1(RF620Device* rf,
		float OUT *  lpPointsBuffer,  
		USHORT OUT *  lpCount)
	{
		return rf->UDPGetNormalizedResult(lpPointsBuffer, lpCount);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_UDPGetResult(RF620Device* rf, void *  lpBuffer ) 
	{
		return rf->UDPGetResult (lpBuffer);
	}

	RFDEVICEPROXYDLL BOOL CALLING_CONVENTION RF620Device_UDPPacketCounter (RF620Device* rf, void *  lpBuffer ) 
	{
		return rf->UDPPacketCounter(lpBuffer);
	}
	
	RFDEVICEPROXYDLL size_t CALLING_CONVENTION RF620Device_ImageBufferSize()
	{
		return RF620Device::ImageBufferSize;
	}

	RFDEVICEPROXYDLL size_t CALLING_CONVENTION RF620Device_ProfileBufferSize()
	{
		return RF620Device::ProfileBufferSize ;
	}

	RFDEVICEPROXYDLL size_t CALLING_CONVENTION RF620Device_ProfileValuesCount()
	{
		return RF620Device::ProfileValuesCount;
	}

}